package com.evildog.workspace.file.upload.uploader;

import com.evildog.workspace.file.upload.object.VirtualFileDTO;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.InputStream;

public interface FileUploader {

    /**
     * 上传文件
     *
     * @param inputStream  文件流
     * @param originalName 文件初始名
     * @return VirtualFileDTO
     */
    VirtualFileDTO upload(InputStream inputStream, String originalName, String folder);

    /**
     * 上传文件
     *
     * @param file  文件
     * @return VirtualFileDTO
     */
    VirtualFileDTO upload(MultipartFile file, String folder);

    /**
     * 上传文件
     *
     * @param file  文件
     * @return VirtualFileDTO
     */
    VirtualFileDTO upload(File file, String folder);

    /**
     * 移除文件
     *
     * @param relativePath 文件相对路径
     * @return 上传是否成功
     */
    boolean remove(String relativePath);

}
